const express = require('express');
const router = express.Router();
const pool = require('../config/database');

// 获取所有商品
router.get('/', async (req, res) => {
  try {
    const [results] = await pool.query('SELECT * FROM goods');
    res.json(results);
  } catch (err) {
    console.error('获取商品列表失败:', err);
    res.status(500).json({ error: err.message });
  }
});

// 添加商品
router.post('/', async (req, res) => {
  const goods = req.body;
  try {
    const [result] = await pool.query('INSERT INTO goods SET ?', goods);
    res.json({ 
      message: '商品添加成功',
      id: result.insertId 
    });
  } catch (err) {
    console.error('添加商品失败:', err);
    res.status(500).json({ error: err.message });
  }
});

// 根据编码获取商品
router.get('/code/:code', async (req, res) => {
  try {
    const [results] = await pool.query(
      'SELECT * FROM goods WHERE code = ?', 
      [req.params.code]
    );
    if (results.length === 0) {
      res.status(404).json({ error: '未找到商品' });
      return;
    }
    res.json(results[0]);
  } catch (err) {
    console.error('获取商品失败:', err);
    res.status(500).json({ error: err.message });
  }
});

// 更新商品
router.put('/:id', async (req, res) => {
  const goods = req.body;
  try {
    const [result] = await pool.query(
      'UPDATE goods SET ? WHERE id = ?',
      [goods, req.params.id]
    );
    if (result.affectedRows === 0) {
      res.status(404).json({ error: '未找到商品' });
      return;
    }
    res.json({ message: '商品更新成功' });
  } catch (err) {
    console.error('更新商品失败:', err);
    res.status(500).json({ error: err.message });
  }
});

// 删除商品
router.delete('/:id', async (req, res) => {
  try {
    const [result] = await pool.query(
      'DELETE FROM goods WHERE id = ?',
      [req.params.id]
    );
    if (result.affectedRows === 0) {
      res.status(404).json({ error: '未找到商品' });
      return;
    }
    res.json({ message: '商品删除成功' });
  } catch (err) {
    console.error('删除商品失败:', err);
    res.status(500).json({ error: err.message });
  }
});

module.exports = router; 